{{tag>Xenial Trusty partage UPnP ps3 dlna}}

----

====== MediaTomb ======

**MediaTomb** est un serveur UPnP OpenSource sous Licence.
Il permet ainsi de partager des ressources audio et vidéo sur votre réseau interne, en étant géré par interface web.

MediaTomb est implémenté selon les spécifications UPnP MediaServer v1.0 ; il est disponible pour architecture x86, AMD64 pour Ubuntu.

<note>MediaTomb a été remplacé par son successeur [[gerbera|Gerbera]] depuis Ubuntu 18.04 !</note>
===== Pré-requis =====

  * Disposer des [[:sudo|droits d'administration]] ;
  * Disposer d'une connexion à Internet configurée et activée ;
  * Avoir une connexion réseau correctement configurée sur le client DLNA (PS3, Neufbox, freebox HD, ...)
  


===== Installation =====

Il vous suffit de les activer et d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>mediatomb]]**.

<note important>Attention depuis la mise à jour 18.04, il n'y a plus le paquet dans les dépôts... on peut utiliser le paquet **[[apt>gerbera]]**, basé sur mediatomb qui lui succède et fonctionne de façon similaire. Voir la page **[[gerbera]]**</note>

Après installation il vous faut [[#activation_interface_mediatomb|activer l'interface]] et redémarrer Mediatomb, pour éviter le message d'erreur : 
**MediaTomb UI is disabled. Check your configuration**.


===== Configuration =====

==== Modification des paramètres par défaut ====
Par défaut, Mediatomb diffuse vos médias sur l'interface réseau //loop// (lo), c'est-à-dire que vous ne pouvez diffuser vos fichiers multimédias que sur votre ordinateur ! Pour pouvoir les diffuser sur votre réseau local, il faut modifier le fichier ''/etc/default/mediatomb'' :
  gksudo gedit /etc/default/mediatomb &

Changez la ligne
  MT_INTERFACE="lo"
en :
  MT_INTERFACE="eth0"
où ''eth0'' est l'interface par laquelle votre ordinateur est relié au réseau local. 

<note warning>Depuis Xenial (?) le nommage des interfaces a changé et ce peut être une valeur quelconque.

L'interface de votre réseau local est indiquée à la fin de la ligne retournée par la commande :
  route | grep "link-local"
</note>

Profitez-en pour vérifier que le fichier de log de Mediatomb est bien ''/var/log/mediatomb.log'' (et non ''/var/log/mediatomb'') à la ligne :
  MT_LOGFILE="/var/log/mediatomb.log"


==== Activation Interface Mediatomb ====

 Avec les droits administrateur.

  * Dans un premier temps, il faut [[:tutoriel:comment_editer_un_fichier|modifier le fichier]] **/etc/mediatomb/config.xml** :
Changer la valeur (ligne 7)
<file xml /etc/mediatomb/config.xml><ui enabled="no" show-tooltips="yes"></file>
par 
<file xml><ui enabled="yes" show-tooltips="yes"></file> 
  * Puis, re-démarrez le serveur : <code>sudo service mediatomb restart</code>
Depuis systemd la commande suivante marche aussi :<code>systemctl start mediatomb</code>


  * Si on veut que le service se lance au démarrage de l’ordinateur depuis la mise en place de systemd il suffit de lancer la commande suivante :<code>systemctl enable mediatomb</code>


==== Premier usage ====

=== Accès interface web ===

<note important>Vous devez avoir autorisé l'exécution de code JavaScript dans votre navigateur internet. Et pour ceux qui utilisent l'extension AdBlock, vérifiez qu'elle ne filtre pas la page web de mediatomb.</note>

  * Avec [[unity|Unity]] vous avez accès à l'affichage du serveur quand il est fonctionnel, depuis son icone dans la [[unity_launcher|Barre de lanceurs]] ou depuis votre [[unity#tableau_de_bord_dash|tableau de bord]].
<note>Pour des versions plus anciennes ou d'autres variantes, vous y accéder par le menu //Applications → Son et Vidéo (ou Multimédia) → Mediatomb//.</note>

<note warning>Apparemment, l'usage avec Konqueror, Safari est bogué !
L'utilisation  avec Internet Explorer est dégradée ...
Pleinement fonctionnel avec Mozilla Firefox, Opera et Chromium.
</note>

    * Le port de Mediatomb est défini dans le fichier /etc/default/mediatomb à l'entrée MT_PORT. Vous accéderez à l'interface par votre navigateur à l'URL:
http://localhost:<port>

    * Vous pouvez le voir aussi en ouvrant votre navigateur internet favori, et en tapant l'une ou l'autre des deux URL suivantes :
http://localhost:49152 (http://localhost:49152 avec ubuntu 10.04 et 10.10) \\
http://adresse_ip:49152 (http://adresse_ip:49152 avec ubuntu 10.04 et 10.10)\\
\\
Si cela ne marche pas, alors essayer le port 49153 en tapant l'une ou l'autre des deux URL suivantes :\\
http://localhost:49153 (http://localhost:49153 avec ubuntu 13.04) \\
http://adresse_ip:49153 (http://adresse_ip:49153 avec ubuntu 13.04)

Si cela ne marche toujours pas, alors essayer le port 50500 en tapant l'une ou l'autre des deux URL suivantes :\\
http://localhost:50500 (http://localhost:50500 avec ubuntu 15.10) \\
http://adresse_ip:50500 (http://adresse_ip:50500 avec ubuntu 15.10)

    * Pour finir, il est possible d'y avoir accès aussi, en ouvrant votre gestionnaire de fichiers, de vous diriger dans votre répertoire personnel, puis vers **.mediatomb**, et de lancer **mediatomb.html**.

=== Aperçu ===

{{ :mediatomb1.png?direct&300 |}}\\

Cette interface web vous permettra de choisir quels fichiers vous mettrez en partage. \\
Pour mettre en partage des fichiers sur le serveur, il faut aller sur le menu **Filesystem** puis naviguer dans l'arborescence et cliquer sur le signe **Plus** (+) en haut à droite pour chaque dossier ou fichier que vous souhaitez partager. \\
Dans **Database** apparaîtra tous les dossiers (et donc tous les fichiers "média" à l'intérieur) et fichiers partager via le serveur mediatomb. Ceux ci apparaîtront au fur et à mesure du scan des dossiers, plus ou moins rapidement selon qu'il y a beaucoup de fichiers à l'intérieur.
 <note>
Pour plus d'explications sur l'[[http://mediatomb.cc/pages/userinterface|utilisation de l'interface web]], je vous renvoie vers la documentation officielle ... //dans l'immédiat//.
</note>

<note important>
Vous ne verrez correctement la page web que si le serveur est bien configuré et lancé ... voir la section **[[#activation_interface_mediatomb|activer l'interface]]** !
</note>



=== Enregistrement base de données ===

Par défaut, **mediatomb** fonctionne avec sqlite pour enregistrer les différentes données.

La base de donnée générée se trouve par défaut ici : **/var/lib/mediatomb/mediatomb.db**
Pour la purger, supprimer le fichier, puis redemarrer mediatomb.

Pour info, il est possible d'[[#usage_mysql|utiliser une base de données MySQL]]…

=====Problèmes=====

====Affichage des caractères accentués====

Vous pouvez rencontrer des problèmes d'affichage des caractères accentués dans l'interface web, notamment si vous lancez mediatomb en tant que service. Pour résoudre ce problème, il faut [[:tutoriel:comment_editer_un_fichier|modifier le fichier]] **/etc/mediatomb/config.xml** et ajouter les lignes suivantes après la ligne <import hidden-files="no"> 

 <file xml /etc/mediatomb/config.xml>
    <filesystem-charset>UTF-8</filesystem-charset>
    <metadata-charset>UTF-8</metadata-charset>
    <playlist-charset>UTF-8</playlist-charset></file>

Comme à chaque changement du ficher de config, il faut ensuite redémarrer le serveur.

==== Starting upnp media server: mediatomb failed! ====

Après un mise à jour, il est possible que le service ne redémarre pas :
<code>sudo /etc/init.d/mediatomb start
Starting upnp media server: mediatomb failed!</code>

Pour comprendre d’où vient le problème il faut vérifier le fichier log

Le journal log se trouve dans **/var/log/mediatomb.log** … affichez-le au moindre problème.

<note>
Vous pouvez cibler précisément toute erreur ou information importante, en tapant ceci : <code>grep -i warning /var/log/mediatomb.log</code> ou <code>grep -i error /var/log/mediatomb.log</code>, voire pour obtenir les dernières informations inscrites dans ce fichier, à exécuter un : <code>tail /var/log/mediatomb.log</code>
</note>

==== Erreur accès fichier de configuration ====

Si vous rencontrez cette erreur :
<code>tail /var/log/mediatomb.log
2010-08-05 21:56:41   ERROR: could not open file /etc/mediatomb/config.xml for writing : Permission denied
2010-08-05 22:00:57    INFO: Loading configuration from: /etc/mediatomb/config.xml
2010-08-05 22:00:58    INFO: UUID generated: b98dbcf5-82d3-43b9-81fc-277c1bc0ebe1</code>


Vérifiez la présence du fichier et les droits :

<code>cd /etc/mediatomb/</code>
puis
<code>ls -l 
total 21
-rw-r--r-- 1 root root 6874 16 juil. 15:56 config.xml</code>

Pour ce problème là, changer les droits de la manière suivante :
<code> sudo chmod 744 config.xml</code>

puis

<code>sudo /etc/init.d/mediatomb start</code>

==== Disque USB inaccessible ====

Pour que Mediatomb puisse accéder au contenu d'un disque USB, il est nécessaire que ce dernier soit recensé dans le fichier ''/etc/fstab''.

On crée d'abord un point de montage, accessible par tous :
  sudo mkdir /mnt/USB2T
  sudo chmod 777 /mnt/USB2T

On détermine ensuite quel est l'UUID et le type de formatage du disque USB connecté : 
  sudo blkid
Parmi les lignes qui apparaissent :

''/dev/sdb1: UUID="a9774bae-d7e5-4d83-a7c2-d5d48ab16191" TYPE="ext4"''

Il reste à ajouter la ligne suivante à la fin du fichier /etc/fstab :

''UUID=a9774bae-d7e5-4d83-a7c2-d5d48ab16191 /mnt/USB2T ext4 defaults 0 1''

Pour le premier montage uniquement :
  sudo mount /mnt/USB2T

On peut à présent utiliser l'interface de Mediatomb pour ajouter à sa base des dossiers se trouvant sur ce disque dur USB.

<note warning>Ce disque USB ne pourra plus être démonté par un utilisateur de l'ordinateur ; seul un sudoer pourra le faire (''sudo umount /mnt/USB2T''), à condition que le service mediatomb soit arrêté.

De plus, si un utilisateur veut accéder aux fichiers de ce disque, il devra utiliser le chemin /mnt/USB2T ; le mieux étant de créer dans son dossier personnel un lien symbolique 
  cd
  ln -s /mnt/USB2T
qui lui permettra d'y accéder plus simplement.
 </note>
===== Utilisation Spécifique =====

==== Gestion PS3 ====

Il est possible de "lier" la PS3 avec le serveur Mediatomb :

Toujours, avec les droits d'administrateur, [[:tutoriel:comment_editer_un_fichier|modifiez le fichier]] **/etc/mediatomb/config.xml** :

  * ligne 23, ( 26 pour 11.04 ornic) **changez** la valeur **'no'** de l'attribut extend  **par 'yes'** : <code><protocolInfo extend="yes"/></code>
  * ligne 65, (77 pour 11.04 ornic) **enlevez les commentaires html** de la ligne, afin de ne plus avoir sur cette ligne que ce code : <code><map from="avi" to="video/divx"/></code>

Redémarrez le serveur.

<note warning>Vous devez avoir un firmware PS3, version 1.80 minimum.</note>

<note warning>Si vous n'arrivez pas à lire vos fichiers sur la PS3 (ils apparaissent, mais avec la mention "**Données non compatibles**", vérifiez que vous modifiez bien le fichier config.xml qui est lu au démarrage de médiatomb. Il en en a en effet un dans /etc/mediatomb, et un autre dans ~/.mediatomb. Vous pouvez choisir le fichier lu par mediatomb avec l'argument -c (par exemple: //mediatomb -c /home/utilisateur/.mediatomb/config.xml//).</note>

<note warning>Il est parfois nécessaire de **réimporter** les fichiers .avi dans Mediatomb (via l'interface web), pas seulement de redémarrer le serveur, pour que les modifications apportées à config.xml soient prises en compte.</note>

<note>Si vous souhaitez utiliser mediatomb avec la PS3 et la Freebox HD, vous devez remplacer la ligne 65:
<code><map from="avi" to="video/divx"/></code> par:
<code><map from="avi" to="video/avi"/></code>
</note>

<note>Si vous souhaitez utiliser mediatomb avec la PS3 et les fichies HD M2TS ajouter la ligne :
<code><map from="m2ts" to="video/mpeg"/></code> </note>

==== Gestion des TV SAMSUNG ====

Toujours, avec les droits d'administrateur, [[:tutoriel:comment_editer_un_fichier|modifiez le fichier]] **/etc/mediatomb/config.xml** :
Après la ligne:  <custom-http-headers>, saisir:
<code> <custom-http-headers>
     <!-- commenter les 2 lignes qui suivent pour compatibilité avec la freebox-->
    <add header="transferMode.dlna.org: Streaming"/>
    <add header="contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000"/>
    </custom-http-headers>
</code>
Pour visualiser les mkv: saisir la ligne suivante dans la rubrique <extension-mimetype> :
<code><map from="mkv" to="video/x-mkv"/></code>
Ligne 23, changez la valeur 'no' de l'attribut extend par 'yes' (permet entre autre d'avoir les vignettes affichées lors de la visualisation des photos):
<code><protocolInfo extend="yes"/></code>

Si malgré ces différents réglages Mediatomb ne lit aucune vidéo, il faut essayer avec le config.xml suivant (fonctionne avec la TV Samsung UE32C6000) :
<file xml config.xml> <?xml version="1.0" encoding="UTF-8"?>
<config version="2" xmlns="http://mediatomb.cc/config/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mediatomb.cc/config/2 http://mediatomb.cc/config/2.xsd"><!--
     Read /usr/share/doc/mediatomb-common/README.gz section 6 for more
     information on creating and using config.xml configration files.
    -->
  <server>
    <ui enabled="yes" show-tooltips="yes">
      <accounts enabled="no" session-timeout="30">
        <account user="USERNAME HERE" password="PASSWORD HERE"/>
      </accounts>
    </ui>
    <name>MediaTomb</name>
    <udn>uuid:c428ce54-f29a-4ebe-83d5-730ae14a0b32</udn>
    <home>/var/lib/mediatomb</home>
    <webroot>/usr/share/mediatomb/web</webroot>
    <storage caching="yes">
      <sqlite3 enabled="yes">
        <database-file>mediatomb.db</database-file>
      </sqlite3>
      <mysql enabled="no">
        <host>localhost</host>
        <username>DATABASE USERNAME HERE</username>
        <database>DATABASE NAME HERE</database>
      </mysql>
    </storage>
    <protocolInfo extend="yes"/><!-- For PS3 support change to "yes" -->
    <!--
       Uncomment the lines below to get rid of jerky avi playback on the
       DSM320 or to enable subtitles support on the DSM units
    -->
    <custom-http-headers>
      <add header="X-User-Agent: redsonic"/>
      <add header="transferMode.dlna.org: Streaming"/>
      <add header="contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=017000 00000000000000000000000000"/>
    </custom-http-headers>

    <manufacturerURL>redsonic.com</manufacturerURL>
    <modelNumber>105</modelNumber>
    <!-- Uncomment the line below if you have a Telegent TG100 -->
    <!--
       <upnp-string-limit>101</upnp-string-limit>
    -->
    <extended-runtime-options>
      <ffmpegthumbnailer enabled="no">
        <thumbnail-size>128</thumbnail-size>
        <seek-percentage>5</seek-percentage>
        <filmstrip-overlay>yes</filmstrip-overlay>
        <workaround-bugs>no</workaround-bugs>
      </ffmpegthumbnailer>
      <mark-played-items enabled="no" suppress-cds-updates="yes">
        <string mode="prepend">*</string>
      </mark-played-items>
    </extended-runtime-options>
  </server>
  <import hidden-files="no">
    <scripting script-charset="UTF-8">
      <common-script>/usr/share/mediatomb/js/common.js</common-script>
      <playlist-script>/usr/share/mediatomb/js/playlists.js</playlist-script>
      <virtual-layout type="builtin">
        <import-script>/usr/share/mediatomb/js/import.js</import-script>
        <dvd-script>/usr/share/mediatomb/js/import-dvd.js</dvd-script>
      </virtual-layout>
    </scripting>
    <mappings>
      <extension-mimetype ignore-unknown="no">
        <map from="mp3" to="audio/mpeg"/>
        <map from="ogg" to="application/ogg"/>
        <map from="asf" to="video/x-ms-asf"/>
        <map from="asx" to="video/x-ms-asf"/>
        <map from="wma" to="audio/x-ms-wma"/>
        <map from="wax" to="audio/x-ms-wax"/>
        <map from="wmv" to="video/x-ms-wmv"/>
        <map from="wvx" to="video/x-ms-wvx"/>
        <map from="wm" to="video/x-ms-wm"/>
        <map from="wmx" to="video/x-ms-wmx"/>
        <map from="m3u" to="audio/x-mpegurl"/>
        <map from="pls" to="audio/x-scpls"/>
        <map from="flv" to="video/x-flv"/>
    <!--    <map from="mkv" to="video/x-matroska"/> -->
        <map from="mkv" to="video/mpeg"/>
        <map from="mka" to="video/mpeg"/><!-- Uncomment the line below for PS3 divx support -->
    <!--    <map from="avi" to="video/divx"/> --> <!-- Uncomment the line below for D-Link DSM / ZyXEL DMA-1000 -->
    <!--    <map from="avi" to="video/avi"/> -->
        <map from="avi" to="video/mpeg"/>
      </extension-mimetype>
      <mimetype-upnpclass>
        <map from="audio/*" to="object.item.audioItem.musicTrack"/>
        <map from="video/*" to="object.item.videoItem"/>
        <map from="image/*" to="object.item.imageItem"/>
        <map from="application/ogg" to="object.item.audioItem.musicTrack"/>
      </mimetype-upnpclass>
      <mimetype-contenttype>
        <treat mimetype="audio/mpeg" as="mp3"/>
        <treat mimetype="application/ogg" as="ogg"/>
        <treat mimetype="audio/x-flac" as="flac"/>
        <treat mimetype="image/jpeg" as="jpg"/>
        <treat mimetype="audio/x-mpegurl" as="playlist"/>
        <treat mimetype="audio/x-scpls" as="playlist"/>
        <treat mimetype="audio/x-wav" as="pcm"/>
        <treat mimetype="audio/L16" as="pcm"/>
        <treat mimetype="video/x-msvideo" as="avi"/>
        <treat mimetype="video/mp4" as="mp4"/>
        <treat mimetype="audio/mp4" as="mp4"/>
        <treat mimetype="application/x-iso9660" as="dvd"/>
        <treat mimetype="application/x-iso9660-image" as="dvd"/>
        <treat mimetype="video/x-matroska" as="mkv"/>
        <treat mimetype="audio/x-matroska" as="mka"/>
      </mimetype-contenttype>
    </mappings>
    <online-content><!-- Make sure to setup a transcoding profile for flv -->
      <YouTube enabled="no" refresh="28800" update-at-start="yes" purge-after="604800" racy-content="exclude" format="flv" hd="no">
        <favorites user="FAVORITES USER HERE"/>
        <standardfeed feed="most_viewed" time-range="today"/>
        <playlists user="FAVORITES USER HERE"/>
        <uploads user="FAVORITES USER HERE"/>
        <standardfeed feed="recently_featured" time-range="today"/>
      </YouTube>
      <Weborama enabled="no" refresh="28800" update-at-start="no">
        <playlist name="Active" type="playlist" mood="active"/>
        <playlist name="Metal" type="playlist">
          <filter>
            <genres>metal</genres>
          </filter>
        </playlist>
      </Weborama>
      <AppleTrailers enabled="no" refresh="43200" update-at-start="yes" resolution="640"/>
    </online-content>
  </import>
  <transcoding enabled="no">
    <mimetype-profile-mappings>
      <transcode mimetype="video/x-flv" using="vlcmpeg"/>
      <transcode mimetype="application/ogg" using="vlcmpeg"/>
      <transcode mimetype="application/ogg" using="oggflac2raw"/>
      <transcode mimetype="audio/x-flac" using="oggflac2raw"/>
    </mimetype-profile-mappings>
    <profiles>
      <profile name="oggflac2raw" enabled="no" type="external">
        <mimetype>audio/L16</mimetype>
        <accept-url>no</accept-url>
        <first-resource>yes</first-resource>
        <accept-ogg-theora>no</accept-ogg-theora>
        <agent command="ogg123" arguments="-d raw -o byteorder:big -f %out %in"/>
        <buffer size="1048576" chunk-size="131072" fill-size="262144"/>
      </profile>
      <profile name="vlcmpeg" enabled="no" type="external">
        <mimetype>video/mpeg</mimetype>
        <accept-url>yes</accept-url>
        <first-resource>yes</first-resource>
        <accept-ogg-theora>yes</accept-ogg-theora>
        <agent command="vlc" arguments="-I dummy %in --sout #transcode{venc=ffmpeg,vcodec=mp2v,vb=4096,fps=25,aenc=ffmpeg,acodec=mpga,ab=192,samplerate=44100,channels=2}:standard{access=file,mux=ps,dst=%out} vlc:quit"/>
        <buffer size="14400000" chunk-size="512000" fill-size="120000"/>
      </profile>
    </profiles>
  </transcoding>
</config> </file>

==== Usage MySQL ====

Il est possible de fonctionner avec MySQL !

Veuillez dans un premier temps [[:mysql|installez le serveur mysql]], si cela n'est pas déjà fait ... ensuite, il vous faut configurer celui-ci, en tant qu'administrateur toujours :

  mysql> CREATE DATABASE db_mediatomb;
  mysql> GRANT ALL ON db_mediatomb.* TO 'user_mediatomb'@'localhost' IDENTIFIED BY 'passwd_mediatomb';

<note important>Changez 'user_mediatomb' par un nom utilisateur, tel que mediatomb, et 'passwd_mediatomb' par un mot de passe de votre choix ... retenez-les !</note>

Ensuite, il faut [[:tutoriel/comment_editer_un_fichier|modifier le fichier]] **/etc/mediatomb/config.xml** :

  * ligne 14, paramétrer **sqlite** sur **no** : <code><sqlite3 enabled="no"></code>
  * ligne 17, paramétrer **mysql** sur **yes** : <code><mysql enabled="yes"></code>
  * ligne 18, laissez **host** sur **localhost**, si mediatomb est installé en local ... : <code><host>localhost</host></code>
  * ligne 19, paramétrer le nom **utilisateur MySQL**,// celui que vous avez donné ci-dessus.// : <code><username>mediatomb</username></code>
  * ligne 20, paramétrer le nom de la base **database** sur **db_mediatomb** : <code><database>db_mediatomb</database></code>
  * ligne 21, paramétrer le **mot-de-passe MySQL** correspondant à l'utilisateur MySQL,// ci-dessus.// : <code><password>mediatomb</password></code>


Redémarrez le serveur !


==== Sécuriser le serveur ====

Le serveur a intégré un gestionnaire de fichier au-travers du navigateur internet.

Configuré par défaut, il permet à n'importe qui de naviguer dans votre système de fichier et ainsi de télécharger n'importe quelle donnée. Dans un environnement non sécurisé, il est nécessaire de désactiver l'interface graphique :

  * ligne 4, paramétrer l'attribut **enabled** à **no** : <code><ui enabled="no" /></code>

Dans le contexte d'un environnement LAN, vous pouvez laisser l'interface graphique activée, tout en paramétrant la gestion de compte :

  * ligne 4, laissez l'attribut **enabled** à **yes**.
  * ligne 5, paramétrer l'attribut **enabled** à **yes** : <code><accounts enabled="yes" session-timeout="30"></code>
  * ligne 6, paramétrer les attributs **user** et **password** ...

<note warning>La protection par gestion de compte user/password n'est pas assez sécurisé pour un environnement non sécurisé. La documentation officielle précise de ne pas l'utiliser hors du contexte LAN.</note>

==== Pare-feu ====

Une fois mediatomb installé, les ports suivant doivent être ouvert dans le pare-feu ([[:ufw]]): 
  * 49152 en udp et tcp
  * 1900 en udp
 
<note warning>Attention, à partir de 15.10 : port 50500 en lieu et place  de 49152 !</note>

et / ou

239.0.0.0/8

==== Freebox V5 & V6 ====

=== Lire les fichiers AVI (divx) ===

Remplacer la ligne :
<code><map from="avi" to="video/divx"/></code> par:
<code><map from="avi" to="video/avi"/></code>


=== Améliorer la qualité d'affichage des images ===

Pour les utilisateurs de Freebox, si vous avez un problème de mauvaise qualité d'affichage des images ceci est dû à un bug de la freebox qui affiche la vignette et non l'image si cette dernière possède des données de prise de vue. Il y a deux méthodes pour y remédier.

== Méthode 1 : Supprimer les vignettes avec l'outil convert ==

Pour chaque image de votre collection, lancer la commande suivante :
<code>
convert maphoto.jpg -strip photofreebox.jpg
</code>
  * //maphoto.jpg// correspond au nom de l'image pour laquelle la Freebox affiche la vignette ;
  * //photofreebox.jpg// est le nom du nouveau fichier image qui sera créé à partir du précédent, sans la vignette.

La commande //convert// fait partie des outils [[apt://imagemagick|imagemagick]], vérifier donc que ce paquet est [[:tutoriel:comment_installer_un_paquet|bien installé]].

== Méthode 2 : Pré-traitement sur les images ==

Modifier le fichier// /etc/mediatomb/config.xml// pour dire à mediatomb d'effectuer un pré-traitement sur les images.
Dans la balise <mimetype-profile-mappings> ajouter:
<file xml>
<transcode mimetype="image/jpeg"  using="resizejpeg"/>
</file>

Dans la balise <profiles> ajouter un profile
<file xml>
      <profile name="resizejpeg" enabled="yes" type="external">
        <mimetype>image/jpeg</mimetype>
         <agent command="convert" arguments=" -geometry 25% %in %out"/>
        <first-resource>yes</first-resource>
       <hide-original-resource>yes</hide-original-resource>
       <buffer size="1048576" chunk-size="2072" fill-size="262144"/>
      </profile>
</file>

Explication: Pour les images on ajoute un traitement qui consiste à lancer la commande //convert// avec les arguments suivants:  -geometry 25% %in %out (ou %in est le fichier en entrée et %out le fichier en sortie. Il est tout a fait possible de modifier cette commande et ces paramètres. Par exemple :
<file xml>
      <profile name="resizejpeg" enabled="yes" type="external">
        <mimetype>image/jpeg</mimetype>
        <first-resource>yes</first-resource>
        <hide-original-resource>yes</hide-original-resource>
        <agent command="convert" arguments="-size 1080x720 %in -auto-orient -resize 112.5%x100% +profile '*' %out"/>
        <buffer size="50000" chunk-size="100" fill-size="100"/>
      </profile>
</file>

<note>
  * Vérifier que l'attribut //enabled// de la balise //transcoding// soit à //yes//:  <transcoding enabled="yes">
  * Seule les images converties sont affichée sur la Freebox. Vos originaux ne sont pas modifiés : [[http://mediatomb.cc/pages/transcoding]] **(en)** 
</note>
<note important>
  * Le pré-traitement peut être long et est appliqué à tout le répertoire ce qui allonge le temps d'affichage.
  * Prévoyez suffisamment d'espace mémoire sur votre périphérique de stockage, car les images sont dupliqués sur ce répertoire.
</note>

==== Gérer les sous-titres (sub, srt) ====

Avec Mediatomb, vous avez la possibilité de transcoder vos vidéos en temps réel. On peut utiliser cette fonction pour y incruster les sous-titres au vidéo.

=== Méthode officielle ===

La [[http://mediatomb.cc/dokuwiki/transcoding:transcoding|méthode officielle]] vous permet de déclarer dans Mediatomb que les fichiers srt (ou sub) sont des fichiers vidéos, aux quels on applique un transcodage grâce à [[mencoder]] qu'il vous faudra installer.

<note important>
Avantages de cette méthode :
  * Permet de gérer plusieurs langues de sous-titres et de pouvoir visionner la vidéo sans les sous-titres.
  * Fonctionne avec la PS3
Inconvénients :
  * Ne fonctionne pas avec la FreeboxV5 qui filtre les fichiers *.srt
  * Les fichiers *.srt sont affiché dans la liste des fichiers du serveur, ce qui peut faire un peu fouillis.
</note>

Il faut d'abords déclarer un type mime pour les *.srt.

<code>
<extension-mimetype ignore-unknown="no">
  ...
  <map from="srt" to="video/subtitle"/>
</extension-mimetype>

</code>

Ajouter un mapping pour ces fichiers :

<code>
<mimetype-profile-mappings>
  ...
  <transcode mimetype="video/subtitle" using="mencoder-srt"/>
</mimetype-profile-mappings>
</code>

Puis ajouter un profil correspondant au mapping :

<code>
<profiles>
  ...
  <profile name="mencoder-srt" enabled="yes" type="external">
    <mimetype>video/mpeg</mimetype>
    <accept-url>yes</accept-url>
    <first-resource>yes</first-resource>
    <accept-ogg-theora>yes</accept-ogg-theora>
    <agent command="/usr/local/bin/mediatomb-mencoder-srt" arguments="%in %out"/>
    <buffer size="1000000" chunk-size="512000" fill-size="20480"/>
  </profile>
</profiles>
</code>

Activer le transcodage des vidéos :

<code>
<transcoding enabled="yes">
</code>

Créer le script qui nous permettra de transcoder les vidéos : **/usr/local/bin/mediatomb-mencoder-srt**

<code bash mediatomb-mencoder-srt>
#!/bin/bash
srt="$1"
output="$2"
# filename must be of the form "movie name.XX[X].srt" or "movie name.srt"
base_name="$(echo $srt | sed 's/\..\{2,3\}\.srt$//' | sed 's/\.srt$//')"

extensions="avi mp4 mpg mov"
for ext in $extensions ; do
    input=$base_name.$ext;
    if [[ -e $input ]]; then break; fi
done

# Detect encoding to use
charset=`file -i "$1" | sed s/.*charset=//g`
subopt=
if [[ "$charset" = "utf-8" ]]
then
  subopt=-utf8
fi

exec mencoder "$input" \
-oac lavc -ovc lavc -of mpeg \
-lavcopts vcodec=mpeg2video:keyint=1:vbitrate=200000:vrc_maxrate=9000:vrc_buf_size=1835 \
-vf harddup -mpegopts muxrate=12000 \
-sub "$srt" $subopt -font "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf" -subfont-autoscale 2 \
-o "$output"
</code>

=== Autre méthode ===

Une autre méthode consiste à utiliser un script de transcodage de tout les fichiers *.avi en cherchant si un *.srt existe dans le même répertoire (en utilisant une association de transcoding pour les .avi/.mov/… similaire à la méthode précédente.

<note important>
Avantages de cette méthode :
  * Fonctionne avec la Freebox
Inconvénients :
  * Oblige à tout transcoder même quand il n'y a pas lieu.
  * Oblige à visionner les sous-titres même si on ne les veut pas.
</note>

Vous pouvez utiliser un script du genre :

<code bash>
#!/bin/bash
video="$1"
output="$2"

# extract the base name from the filename
basename="${video%.*}"
[[ ! -z "$basename" ]] && srtfile=$basename".srt"

if [[ -e "$srtfile" ]]
then
        exec mencoder "$video" \
        -oac lavc -ovc lavc -of mpeg \
        -lavcopts vcodec=mpeg2video:keyint=1:vbitrate=200000:vrc_maxrate=9000:vrc_buf_size=1835:vstrict=-2 \
        -vf harddup -mpegopts muxrate=12000\
        -sub "$srtfile" -font "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf" -subfont-autoscale 2 \
        -o "$output"
else
        exec mencoder "$video" \
        -oac lavc -ovc lavc -of mpeg \
        -lavcopts vcodec=mpeg2video:keyint=1:vbitrate=200000:vrc_maxrate=9000:vrc_buf_size=1835:vstrict=-2 \
        -vf harddup -mpegopts muxrate=12000 \
        -o "$output"
fi
</code>

Script modifié : [[http://forum.ubuntu-fr.org/viewtopic.php?pid=3960065#p3960065|Forum]]

===== Désinstallation =====

Il suffit de [[:tutoriel:comment_supprimer_un_paquet|désinstaller]] le programme, soit en utilisant la [[software-center|logithèque Ubuntu]], soit en passant par le [[terminal|terminal]] comme ceci :

On s'assure que mediatomb soit bien fermé
<code>sudo service mediatomb stop</code>
Puis on supprime son paquet
<code>sudo apt-get remove mediatomb</code>
Profitez en pour faire un petit nettoyage
<code>sudo apt-get autoremove</code>
ou utilisez [[deborphan|Deborphan]]


===== Liens =====

  * Le [[http://mediatomb.cc|site de MediaTomb]]
  * La [[http://mediatomb.cc/pages/documentation_overview|documentation]] officielle, [[http://mediatomb.cc/pages/download#debian_ubuntu|page de téléchargement]], … **(en)**
  * [[https://www.tutoriels-video.fr/comment-faire-un-serveur-upnp-avec-mediatomb/|Tutoriel vidéo : comment faire un serveur upnp avec mediatomb]] **(fr)**
  * [[http://wiki.debian-facile.org/manuel:mediatomb| Paramétrages complémentaires réseau]]

----


//Contributeurs ://
  * //[[:utilisateurs:ste]] ;//
  * //[[:utilisateurs:LeMouchoir]] ;//
  * //[[:utilisateurs:claudiux]];//
  * //[[:utilisateur:stylou]].//